This invention relates, in general, to data sharing and, in particular, to the sharing of data among a variety of different clients.
A file server, such as a Unix file server, may support many different file serving protocols, including a Network File System (NFS) protocol, a Server Message Block (SMB) protocol, which is also known as the Common Internet File System (CIFS), a Distributed File Services protocol for the Distributed Computing Environment (DFS/DCE), and an Andrew File System (AFS) protocol. Although many different protocols may be supported, each of the protocols uses a different means of communication between the client and the server and requires different software depending on the type of client machine.
Further, although there may be various protocols, some of the protocols are compliant with the protocols of the server, while others are not. When the client protocols are not compliant with the server protocols, the client cannot share the same data files with other clients that have compliant protocols, since the integrity of the data is jeopardized. Thus, the non-compliant client uses separate data files.
The use of separate data files increases cost, storage usage and complexity. Thus, a need exists for a capability that enables clients having differing protocols to share the same files. A further need exists for a capability that enables non-compliant clients to access the same files as other compliant clients.
The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method of sharing data within a computing environment. In one instance, the method includes caching data in a first cache of the computing environment using a first protocol; caching at least a portion of the data in a second cache of the computing environment using a second protocol, the second protocol being different from the first protocol; and providing cache consistency between the first cache and the second cache, wherein a change of data common to the first cache and the second cache is reflected in the first cache and the second cache.
In one embodiment, the first protocol includes using at least one opportunistic lock to cache data in the first cache. In a further embodiment, the caching of the data in the first cache includes obtaining at least one token to represent the at least one opportunistic lock.
In a further aspect of the present invention, a method of sharing data between clients of a computing environment is provided. The method includes, for instance, accessing a file by a first client of the computing environment, the first client having a first protocol; and accessing the file by a second client of the computing environment, the second client having a second protocol. The second protocol is different from the first protocol, and wherein a change to the file by one of the first client and the second client is reflected to the other of the first client and the second client, thereby providing cache consistency.
In one example, the accessing of the file by the first client and the second client does not require software changes to the first client and the second client. In yet a further example, the accessing of the file by the first client and the second client does not require changes to an operating system of a server managing the first client and the second client.
In yet another example, at least one client of the first client and the second client is remote from a server of the computing environment, and wherein the method further includes obtaining at least one token right from a server token cache for one or more of the at least one client to be used in accessing the file.
In another aspect of the present invention, a method of managing tokens within a computing environment is provided. The method includes, for example, providing a server token cache at a server of the computing environment, the server token cache including one or more tokens; and obtaining at least one token from the server token cache for a remote client of the computing environment.
System and computer program products corresponding to the above-summarized methods are also described and claimed herein.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.